#include "TestMiRegistroVariable.h"

#include "includes.h"
#include "pruebasOficiales1/MiRegistroVariable.h"
#include "pruebasOficiales1/ExtractorClaveRegVariable.h"

TestMiRegistroVariable::TestMiRegistroVariable() {

}

TestMiRegistroVariable::~TestMiRegistroVariable() {

}

void TestMiRegistroVariable::run() {

	int tamanioLista = 2;
	int* lista = new int[tamanioLista];
	lista[0] = 4;
	lista[1] = 5;

	MiRegistroVariable registro1("hola",2,lista,tamanioLista);

	MiRegistroVariable registro2(registro1.serializarse());

	assert(registro2.getMiStringID() == "hola", "Test Hidratar");
	assert(registro2.getMiInt() == 2, "Test Hidratar");
	assert(registro2.getCantidadElementosLista() == 2, "Test Hidratar");

	int* miLista = registro2.getMiLista();

	assert(miLista[0] == 4, "Test Hidratar");
	assert(miLista[1] == 5, "Test Hidratar");

	ExtractorClaveRegVariable extractor;

	Key clave = extractor.crearClave(extractor.extraerClave(registro1.serializarse()));

	assert(clave.toString() == registro1.getMiStringID(), "Test clave");
}
